package org.jumiz.framework.base.template;

import org.jumiz.framework.base.page.Page;

import java.util.List;

/**
 * 持久层操作
 * @author jumiz
 */
public interface Template<T, E> {

    /**
     * 获取单条记录
     * @param param
     * @return
     */
    T getOne(E param);

    /**
     * 获取多条记录
     * @param param
     * @return
     */
    List<T> getList(E param);

    /**
     * 分页查询
     * @param page
     * @return
     */
    Page<T> getPage(Page<E> page);

    /**
     * 分页查询
     * @param page
     * @param param
     * @return
     */
    Page<T> getPage(Page<E> page, E param);

    /**
     * 保存
     * @param param
     * @return
     */
    T save(E param);

    /**
     * 更新
     * @param param
     * @param where
     * @return
     */
    T update(E param, E where);

}